{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "cae7cab9-7bb7-411d-931a-d1ba3f287b32",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.13.2 | packaged by conda-forge | (main, Feb 17 2025, 14:10:22) [GCC 13.3.0]\n",
      "2025.09.1\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from rdkit import rdBase, Chem, DataStructs\n",
    "from rdkit.Chem import AllChem, Draw, Descriptors, PandasTools, rdMolDescriptors, QED\n",
    "from rdkit.Chem.SpacialScore import SPS\n",
    "from QRCI.QRCI import QRCICalculator, get_QRCIproperties\n",
    "from QRCI.RCI import RCICalculator\n",
    "\n",
    "PandasTools.RenderImagesInAllDataFrames(True)\n",
    "from rdkit.Chem.Draw import IPythonConsole\n",
    "\n",
    "print(sys.version)\n",
    "print(rdBase.rdkitVersion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8168252d-41ee-432e-8172-6a3053eeb1c4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<rdkit.Chem.rdchem.Mol at 0x7631c54c1b60>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mol = Chem.MolFromSmiles('C1=CCOCc2cc(ccc2OCCN2CCCC2)Nc2nccc(n2)-c2cccc(c2)COC1')\n",
    "mol"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8b850426-e185-4a17-966b-230f438f7ba3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RCI: 1.28\n"
     ]
    }
   ],
   "source": [
    "rci_calculator = RCICalculator()\n",
    "rci_value = rci_calculator(mol)\n",
    "print(f\"RCI: {rci_value:.2f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f6b634d7-4cb6-4bba-b804-e22e4c6c5630",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "QRCI: 4.0330\n",
      "QRCIproperties(nAromHetero=1, nAromCarbo=2, nAliHetero=2, nAliCarbo=0, nSatHetero=1, nSatCarbo=0, nMacrocycles=1, TRS=41, nRingAtom=32, nFusedRing=4, SF=1.0857142857142856)\n"
     ]
    }
   ],
   "source": [
    "qrci_calculator = QRCICalculator(weights=\"mean\")\n",
    "qrci_score = qrci_calculator(mol)\n",
    "qrci_props = get_QRCIproperties(mol)\n",
    "print(f\"QRCI: {qrci_score:.4f}\")\n",
    "print(qrci_props)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a079a8dc-d52b-4ae6-9861-5f4186bcdaa5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "RDKit313",
   "language": "python",
   "name": "rdkit313"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
